import { createI18n } from "vue-i18n";
import { getBrowserLang } from "@/utils";

import zh from "./modules/zh";
import en from "./modules/en";
const i18n = createI18n({
  // Use Composition API, Set to false
  allowComposition: true,
  legacy: false,
  locale: getBrowserLang(),
  messages: {
    zh,
    en
  }
});

const modules: Record<string, any> = import.meta.glob("./pages/**/*.ts", { eager: true });
const itemize = { en: [], "zh-cn": [], "zh-tw": [] };
//const messages = {};
// 对自动引入的 modules 进行分类 en、zh-cn、zh-tw
// https://vitejs.cn/vite3-cn/guide/features.html#glob-import
for (const path in modules) {
  const key = path.match(/(\S+)\/(\S+).ts/);
  if (itemize[key![2]]) itemize[key![2]].push(modules[path].default);
  else itemize[key![2]] = modules[path];
}

// 合并数组对象（非标准数组对象，数组中对象的每项 key、value 都不同）
// function mergeArrObj<T>(list: T, key: string) {
//   let obj = {};
//   list[key].forEach((i: EmptyObjectType) => {
//     obj = Object.assign({}, obj, i);
//   });
//   return obj;
// }

// // 处理最终格式
// for (const key in itemize) {
//   messages[key] = {
//     name: key,
//     el: element[key].el,
//     message: mergeArrObj(itemize, key)
//   };
// }
export default i18n;
